It is desirable to design and create optimal host environments, such as data centers, for software application workloads. Unfortunately, the current industry leaves this task up to the customer, who may not be familiar with the complexities of such host environments. It is pointed out that vendors might provide some suggestions for a host environment, but in general, the customer is left to design the system architecture for each workload, build the system, tune it, fix it, and update it when needed. Even when a systems integrator performs these tasks the cost and risk largely remains with each customer.
A conventional attempt to solve this problem depends on involving experts directly in designing each system architecture, which is expensive and leaves the customer with the risk. Another conventional attempt involves experts designing reference architectures in white papers, diagrams, and bills of material that have to be interpreted by the customer, which can be suboptimal, inefficient, error prone, and leaves the customer with the risk. Yet another conventional attempt involves automation approaches that attempt to design the optimal system architecture for a given set of concerns dynamically, which has proven to be an intractable problem.
Therefore, it is desirable to address one or more of the above issues.